package cn.edu.scau.cmi.ema.dao;

import cn.edu.scau.cmi.ema.base.CmiPagination;
import cn.edu.scau.cmi.ema.domain.Processmethod;
import org.springframework.dao.DataAccessException;

import java.math.BigDecimal;
import java.util.Set;

public interface ProcessmethodDAO extends JpaDao<Processmethod> {

	public Processmethod findProcessmethodById(Integer id) throws DataAccessException;

	public Processmethod findProcessmethodById(Integer id, int startResult, int maxRows) throws DataAccessException;

	public Set<Processmethod> findProcessmethodByName(String name) throws DataAccessException;

	public Set<Processmethod> findProcessmethodByName(String name, int startResult, int maxRows)
			throws DataAccessException;

	public Set<Processmethod> findProcessmethodByNameContaining(String name_1) throws DataAccessException;

	public Set<Processmethod> findProcessmethodByNameContaining(String name_1, int startResult, int maxRows)
			throws DataAccessException;

	public Set<Processmethod> findProcessmethodByFee(BigDecimal fee) throws DataAccessException;

	public Set<Processmethod> findProcessmethodByFee(BigDecimal fee, int startResult, int maxRows)
			throws DataAccessException;

	public Set<Processmethod> findProcessmethodByDescription(String description) throws DataAccessException;

	public Set<Processmethod> findProcessmethodByDescription(String description, int startResult, int maxRows)
			throws DataAccessException;

	public Set<Processmethod> findProcessmethodByDescriptionContaining(String description_1) throws DataAccessException;

	public Set<Processmethod> findProcessmethodByDescriptionContaining(String description_1, int startResult,
			int maxRows) throws DataAccessException;

	public Processmethod findProcessmethodByPrimaryKey(Integer id) throws DataAccessException;

	public Processmethod findProcessmethodByPrimaryKey(Integer id, int startResult, int maxRows)
			throws DataAccessException;

	public Set<Processmethod> findProcessmethodsByIds(Set<Integer> ids) throws DataAccessException;

	public Set<Processmethod> findAllProcessmethods() throws DataAccessException;

	public Set<Processmethod> findAllProcessmethods(int startResult, int maxRows) throws DataAccessException;

	public Set<Processmethod> findProcessmethodsByUnit(Integer unitId, int start, int max);

	public Set<Processmethod> findProcessmethodByCompositeProperities(String sql, int startResult, int maxRows)
			throws DataAccessException;

	public Set<Processmethod> findProcessmethodsByDetachedCriteria(CmiPagination page) throws DataAccessException;

	public Processmethod findProcessmethodByPhysicalPrimaryKey(String name, BigDecimal fee, Integer unitId)
			throws DataAccessException;

	public Processmethod findProcessmethodByPhysicalPrimaryKey(String name, BigDecimal fee, Integer unitId,
			int startResult, int maxRows) throws DataAccessException;
}
